package gui;

import java.awt.Font;
import java.awt.Rectangle;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.math.BigDecimal;
import javax.swing.JOptionPane;
import javax.swing.JScrollBar;
import javax.swing.table.DefaultTableModel;

import negocios.Fachada;
import negocios.Classificacao;
import negocios.Familia;
import negocios.Insumo;
import negocios.Unidade;

public class PainelDialogoDeInsumos extends JPanel {

	private static final long serialVersionUID = 1L;
	private JScrollPane scrollPaneInsumos = null;
	private JTable tableInsumos = null;
	private JScrollPane scrollPaneUnidades = null;
	private JTable tableUnidades = null;
	private JScrollPane scrollPaneFamilias = null;
	private JTable tableFamilias = null;
	private JScrollPane scrollPaneClassificacoes = null;
	private JTable tableClassificacoes = null;
	private JLabel labelTableInsumos = null;
	private JLabel labelTableUnidades = null;
	private JLabel labelTableFamilias = null;
	private JLabel labelTableClassificacoes = null;
	private JButton buttonInserirInsumo = null;
	private JButton buttonEditarInsumo = null;
	private JButton buttonRemoverInsumo = null;
	private JButton buttonInserirUnidades = null;
	private JButton buttonEditarUnidade = null;
	private JButton buttonRemoverUnidade = null;
	private JButton buttonInserirFamilia = null;
	private JButton buttonEditarFamilia = null;
	private JButton buttonRemoverFamilia = null;
	private JButton buttonInserirClassificacao = null;
	private JButton buttonEditarClassificacao = null;
	private JButton buttonRemoverClassificacao = null;

    public PainelDialogoDeInsumos() {

        super();
        initialize();

    }

	private void initialize() {

		this.setLayout(null);
		this.setSize(750, 450);
		
		this.add(getScrollPaneInsumos(), null);
		this.add(getScrollPaneUnidades(), null);
		this.add(getScrollPaneFamilias(), null);
		this.add(getScrollPaneClassificacoes(), null);
		this.add(getLabelTableInsumos(), null);
		this.add(getLabelTableUnidades(), null);
		this.add(getLabelTableFamilias(), null);
		this.add(getLabelTableClassificacoes(), null);
		this.add(getButtonInserirInsumo(), null);
		this.add(getButtonEditarInsumo(), null);
		this.add(getButtonRemoverInsumo(), null);
		this.add(getButtonInserirUnidades(), null);
		this.add(getButtonEditarUnidade(), null);
		this.add(getButtonRemoverUnidade(), null);
		this.add(getButtonInserirFamilia(), null);
		this.add(getButtonEditarFamilia(), null);
		this.add(getButtonRemoverFamilia(), null);
		this.add(getButtonInserirClassificacao(), null);
		this.add(getButtonEditarClassificacao(), null);
		this.add(getButtonRemoverClassificacao(), null);
		
	}

	private JLabel getLabelTableInsumos() {
		
		if (labelTableInsumos == null) {
			
			labelTableInsumos = new JLabel();
			labelTableInsumos.setBounds(new Rectangle(15, 15, 90, 20));
			labelTableInsumos.setText("Insumos");
			
		}
		
		return labelTableInsumos;
		
	}

	private JLabel getLabelTableUnidades() {
		
		if (labelTableUnidades == null) {
			
			labelTableUnidades = new JLabel();
			labelTableUnidades.setBounds(new Rectangle(430, 15, 90, 20));
			labelTableUnidades.setText("Unidades");
			
		}
		
		return labelTableUnidades;
		
	}
	
	private JLabel getLabelTableFamilias() {
		
		if (labelTableFamilias == null) {
			
			labelTableFamilias = new JLabel();
			labelTableFamilias.setBounds(new Rectangle(430, 145, 90, 20));
			labelTableFamilias.setText("Famílias");
			
		}
		
		return labelTableFamilias;
		
	}

	private JLabel getLabelTableClassificacoes() {
		
		if (labelTableClassificacoes == null) {
			
			labelTableClassificacoes = new JLabel();
			labelTableClassificacoes.setBounds(new Rectangle(430, 275, 90, 20));
			labelTableClassificacoes.setText("Classificações");
			
		}
		
		return labelTableClassificacoes;
		
	}

	private JScrollPane getScrollPaneInsumos() {
		if (scrollPaneInsumos == null) {
			scrollPaneInsumos = new JScrollPane();
			scrollPaneInsumos.setBounds(new Rectangle(15, 40, 400, 360));
            // scrollPaneInsumos.setHorizontalScrollBar(new JScrollBar());
			scrollPaneInsumos.setViewportView(getTableInsumos());

		}
		return scrollPaneInsumos;
	}

	private JTable getTableInsumos() {
		
        if (tableInsumos == null) {

            String[] cabecalho = {"Código", "Descrição", "Preço", "Ponto", "Tipo", "Classificação", "Unidade", "Família"};
            Insumo[] linhas = (Insumo[]) Fachada.getInstancia().listarInsumos();
            String[][] dados = new String[linhas.length][8];

            for(int cont = 0; cont < linhas.length; cont++){

                dados[cont][0] = Integer.toString(linhas[cont].getCodigo());
                dados[cont][1] = linhas[cont].getDescricao();
                dados[cont][2] = linhas[cont].getPreco().toString();
                dados[cont][3] = linhas[cont].getPonto();
                dados[cont][4] = linhas[cont].getTipo();
                dados[cont][5] = Integer.toString(linhas[cont].getClassificacao().getCodigo());
                dados[cont][6] = Integer.toString(linhas[cont].getUnidade().getCodigo());
                dados[cont][7] = Integer.toString(linhas[cont].getFamilia().getCodigo());

            }

            DefaultTableModel dtm = new DefaultTableModel(dados, cabecalho);
			tableInsumos = new JTable(dtm);
            // tableInsumos = new JTable(); // Utilizado em testes
			tableInsumos.setColumnSelectionAllowed(false);
			tableInsumos.setRowSelectionAllowed(true);
            tableInsumos.setEnabled(true);
            tableInsumos.setShowGrid(true);

		}

		return tableInsumos;

	}

	private JScrollPane getScrollPaneUnidades() {
		if (scrollPaneUnidades == null) {
			scrollPaneUnidades = new JScrollPane();
			scrollPaneUnidades.setBounds(new Rectangle(430, 40, 300, 100));
			scrollPaneUnidades.setViewportView(getTableUnidades());
		}
		return scrollPaneUnidades;
	}

	private JTable getTableUnidades() {

        if (tableUnidades == null) {

            String[] cabecalho = {"Código", "Descrição", "Abreviação"};
            Unidade[] linhas = (Unidade[]) Fachada.getInstancia().listarUnidades();
            String[][] dados = new String[linhas.length][3];

            for(int cont = 0; cont < linhas.length; cont++){

                dados[cont][0] = Integer.toString(linhas[cont].getCodigo());
                dados[cont][1] = linhas[cont].getDescricao();
                dados[cont][2] = linhas[cont].getAbreviacao();

            }

            DefaultTableModel dtm = new DefaultTableModel(dados, cabecalho);
			tableUnidades = new JTable(dtm);
			tableUnidades.setColumnSelectionAllowed(false);
			tableUnidades.setRowSelectionAllowed(true);
            tableUnidades.setEnabled(true);
            tableUnidades.setShowGrid(true);            

		}

		return tableUnidades;

	}

	private JScrollPane getScrollPaneFamilias() {
		if (scrollPaneFamilias == null) {
			scrollPaneFamilias = new JScrollPane();
			scrollPaneFamilias.setBounds(new Rectangle(430, 170, 300, 100));
			scrollPaneFamilias.setViewportView(getTableFamilias());
		}
		return scrollPaneFamilias;
	}

	private JTable getTableFamilias() {

        if (tableFamilias == null) {

            String[] cabecalho = {"Código", "Descrição", "Sequencial"};
            Familia[] linhas = (Familia[]) Fachada.getInstancia().listarFamilias();
            String[][] dados = new String[linhas.length][3];

            for(int cont = 0; cont < linhas.length; cont++){

                dados[cont][0] = Integer.toString(linhas[cont].getCodigo());
                dados[cont][1] = linhas[cont].getDescricao();
                dados[cont][2] = Integer.toString(linhas[cont].getCodigoSequencial());

            }

            DefaultTableModel dtm = new DefaultTableModel(dados, cabecalho);
			tableFamilias = new JTable(dtm);
			tableFamilias.setColumnSelectionAllowed(false);
			tableFamilias.setRowSelectionAllowed(true);
            tableFamilias.setEnabled(true);
            tableFamilias.setShowGrid(true);

		}

		return tableFamilias;

	}

	private JScrollPane getScrollPaneClassificacoes() {
		if (scrollPaneClassificacoes == null) {
			scrollPaneClassificacoes = new JScrollPane();
			scrollPaneClassificacoes.setBounds(new Rectangle(430, 300, 300, 100));
			scrollPaneClassificacoes.setViewportView(getTableClassificacoes());
		}
		return scrollPaneClassificacoes;
	}

	private JTable getTableClassificacoes() {

        if (tableClassificacoes == null) {

            String[] cabecalho = {"Código", "Descrição"};
            Classificacao[] linhas = (Classificacao[]) Fachada.getInstancia().listarClassificacoes();
            String[][] dados = new String[linhas.length][2];

            for(int cont = 0; cont < linhas.length; cont++){

                dados[cont][0] = Integer.toString(linhas[cont].getCodigo());
                dados[cont][1] = linhas[cont].getDescricao();

            }
            DefaultTableModel dtm = new DefaultTableModel(dados, cabecalho);
			tableClassificacoes = new JTable(dtm);
			tableClassificacoes.setColumnSelectionAllowed(false);
			tableClassificacoes.setRowSelectionAllowed(true);
            tableClassificacoes.setEnabled(true);
            tableClassificacoes.setShowGrid(true);
            
		}

		return tableClassificacoes;

	}

	private JButton getButtonInserirInsumo() {
		if (buttonInserirInsumo == null) {
			buttonInserirInsumo = new JButton();
			buttonInserirInsumo.setBounds(new Rectangle(250, 15, 50, 20));
			buttonInserirInsumo.setText("+");
			buttonInserirInsumo.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 16));
			buttonInserirInsumo.setToolTipText("Inserir novo insumo");
            buttonInserirInsumo.addActionListener(new ActionListener() {

                    @Override public void actionPerformed(ActionEvent event) {

                        CadastraEditaInsumos cei = new CadastraEditaInsumos(null);
                        cei.setVisible(true);


                    }

                }

            );

		}
		return buttonInserirInsumo;
	}

	private JButton getButtonEditarInsumo() {
		if (buttonEditarInsumo == null) {
			buttonEditarInsumo = new JButton();
			buttonEditarInsumo.setBounds(new Rectangle(305, 15, 50, 20));
			buttonEditarInsumo.setText("...");
			buttonEditarInsumo.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 12));
			buttonEditarInsumo.setToolTipText("Edita insumo selecionado");
            buttonEditarInsumo.addActionListener(new ActionListener() {

                    @Override public void actionPerformed(ActionEvent event) {

                        int linha = getTableInsumos().getSelectedRow();

                        if (linha >= 0) {

                        	Classificacao cla = new Classificacao(Integer.parseInt((String) getTableInsumos().getValueAt(linha, 5)), "nulo");

                        	Unidade und = new Unidade(Integer.parseInt((String) getTableInsumos().getValueAt(linha, 6)), "nulo", "nulo");

                        	Familia fam = new Familia((Integer.parseInt((String) getTableInsumos().getValueAt(linha, 7))), "nulo", 0);

                        	Insumo ins = new Insumo(Integer.parseInt((String) getTableInsumos().getValueAt(linha, 0)),
                                                  	((String) getTableInsumos().getValueAt(linha, 1)),
                                                    (BigDecimal.valueOf(Double.parseDouble((String) getTableInsumos().getValueAt(linha, 2)))),
                                                    (String) getTableInsumos().getValueAt(linha, 3),
                                                    (String) getTableInsumos().getValueAt(linha, 4),
                                                    cla, und, fam);
                        
                        	CadastraEditaInsumos cei = new CadastraEditaInsumos(null, ins);
                        	cei.setVisible(true);
                        	
                        } else {
                        	
                            JOptionPane.showMessageDialog(null, "Nenhuma linha foi selecionada.", "Selecione uma linha", JOptionPane.INFORMATION_MESSAGE);
                            
                        }

                    }

                }

            );
			
		}
		return buttonEditarInsumo;
	}

	private JButton getButtonRemoverInsumo() {
		if (buttonRemoverInsumo == null) {
			buttonRemoverInsumo = new JButton();
			buttonRemoverInsumo.setBounds(new Rectangle(360, 15, 50, 20));
			buttonRemoverInsumo.setText("X");
			buttonRemoverInsumo.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 12));
			buttonRemoverInsumo.setToolTipText("Remove insumo selecionado");
            buttonRemoverInsumo.addActionListener(new ActionListener() {

        			@Override public void actionPerformed(ActionEvent event) {

                        int linha = getTableInsumos().getSelectedRow();

                        if (linha >= 0) {
                                                        
                        	Classificacao cla = new Classificacao(Integer.parseInt((String) getTableInsumos().getValueAt(linha, 5)), "nulo");

                        	Unidade und = new Unidade(Integer.parseInt((String) getTableInsumos().getValueAt(linha, 6)), "nulo", "nulo");

                        	Familia fam = new Familia((Integer.parseInt((String) getTableInsumos().getValueAt(linha, 7))), "nulo", 0);

                        	Insumo ins = new Insumo(Integer.parseInt((String) getTableInsumos().getValueAt(linha, 0)),
                                                  	((String) getTableInsumos().getValueAt(linha, 1)),
                                                    (BigDecimal.valueOf(Double.parseDouble((String) getTableInsumos().getValueAt(linha, 2)))),
                                                    (String) getTableInsumos().getValueAt(linha, 3),
                                                    (String) getTableInsumos().getValueAt(linha, 4),
                                                    cla, und, fam);
                            
            				Fachada.getInstancia().excluirInsumo(ins);

                            JOptionPane.showMessageDialog(null, "Item atualização concluida. Feche e abra novamente o cadastro", "Aviso Importante", JOptionPane.INFORMATION_MESSAGE);

                        } else {
                        	
                            JOptionPane.showMessageDialog(null, "Nenhuma linha foi selecionada.", "Selecione uma linha", JOptionPane.INFORMATION_MESSAGE);
                            
                        }
        
        			}

    			}

            );

		}
		return buttonRemoverInsumo;
	}

	private JButton getButtonInserirUnidades() {
		if (buttonInserirUnidades == null) {
			buttonInserirUnidades = new JButton();
			buttonInserirUnidades.setBounds(new Rectangle(565, 15, 50, 20));
			buttonInserirUnidades.setText("+");
			buttonInserirUnidades.setToolTipText("Insere nova unidade de medida");
			buttonInserirUnidades.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 16));
            buttonInserirUnidades.addActionListener(new ActionListener() {

                    @Override public void actionPerformed(ActionEvent event) {

                        CadastraEditaUnidades cei = new CadastraEditaUnidades(null);
                        cei.setVisible(true);


                    }

                }

            );
            
		}
		return buttonInserirUnidades;
	}

	private JButton getButtonEditarUnidade() {
		
		if (buttonEditarUnidade == null) {
			buttonEditarUnidade = new JButton();
			buttonEditarUnidade.setBounds(new Rectangle(620, 15, 50, 20));
			buttonEditarUnidade.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 12));
			buttonEditarUnidade.setToolTipText("Editar unidade modificada");
			buttonEditarUnidade.setText("...");
            buttonEditarUnidade.addActionListener(new ActionListener() {

            		@Override public void actionPerformed(ActionEvent event) {

                		int linha = getTableUnidades().getSelectedRow();

                		if(linha >= 0) {

                			Unidade und = new Unidade(Integer.parseInt((String) getTableUnidades().getValueAt(linha, 0)),
                                                     ((String) getTableUnidades().getValueAt(linha, 1)),
                                                     ((String) getTableUnidades().getValueAt(linha, 2)));

                    		CadastraEditaUnidades cei = new CadastraEditaUnidades(null, und);
                    		cei.setVisible(true);

                		} else {

                    		JOptionPane.showMessageDialog(null, "Nenhuma linha selecionada", "Selecione uma linha", JOptionPane.INFORMATION_MESSAGE);

                		}

            		}

        		}

            );
			
		}
		return buttonEditarUnidade;
	}

	private JButton getButtonRemoverUnidade() {
		if (buttonRemoverUnidade == null) {
			buttonRemoverUnidade = new JButton();
			buttonRemoverUnidade.setBounds(new Rectangle(675, 15, 50, 20));
			buttonRemoverUnidade.setText("X");
			buttonRemoverUnidade.setToolTipText("Remove unidade selecionada");
			buttonRemoverUnidade.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 12));
            buttonRemoverUnidade.addActionListener(new ActionListener() {

            		@Override public void actionPerformed(ActionEvent event) {

            			int linha = getTableUnidades().getSelectedRow();

                		if(linha >= 0) {

                			Unidade und = new Unidade(Integer.parseInt((String) getTableUnidades().getValueAt(linha, 0)),
                                                 (String) getTableUnidades().getValueAt(linha, 1),
                                                 ((String) getTableUnidades().getValueAt(linha, 2)));
                    		Fachada.getInstancia().excluirUnidade(und);

                            JOptionPane.showMessageDialog(null, "Item atualização concluida. Feche e abra novamente o cadastro", "Aviso Importante", JOptionPane.INFORMATION_MESSAGE);

                        } else {
                        	
                            JOptionPane.showMessageDialog(null, "Nenhuma linha foi selecionada.", "Selecione uma linha", JOptionPane.INFORMATION_MESSAGE);
                            
                        }
            
            		}

        		}

            );			
			
		}
		return buttonRemoverUnidade;
	}

	private JButton getButtonInserirFamilia() {
		if (buttonInserirFamilia == null) {
			buttonInserirFamilia = new JButton();
			buttonInserirFamilia.setBounds(new Rectangle(565, 145, 50, 20));
			buttonInserirFamilia.setText("+");
			buttonInserirFamilia.setToolTipText("Inserir nova família");
			buttonInserirFamilia.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 16));
            buttonInserirFamilia.addActionListener(new ActionListener() {

            		@Override public void actionPerformed(ActionEvent event) {

                        CadastraEditaFamilias cei = new CadastraEditaFamilias(null);
                        cei.setVisible(true);

                        //JOptionPane.showMessageDialog(null, (String)getTableClassificacoes().getValueAt(0, 1), "Mensagem", JOptionPane.INFORMATION_MESSAGE);


                	}

            	}

            );
            
		}
		
		return buttonInserirFamilia;
		
	}

	private JButton getButtonEditarFamilia() {
		if (buttonEditarFamilia == null) {
			buttonEditarFamilia = new JButton();
			buttonEditarFamilia.setBounds(new Rectangle(620, 145, 50, 20));
			buttonEditarFamilia.setText("...");
			buttonEditarFamilia.setToolTipText("Editar família selecionada");
			buttonEditarFamilia.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 12));
            buttonEditarFamilia.addActionListener(new ActionListener() {

                	@Override public void actionPerformed(ActionEvent event) {

                    	int linha = getTableFamilias().getSelectedRow();

                    	if(linha >= 0) {

                        	Familia fam = new Familia(Integer.parseInt((String) getTableFamilias().getValueAt(linha, 0)),
                                                     ((String) getTableFamilias().getValueAt(linha, 1)),
                                                     Integer.parseInt((String) getTableFamilias().getValueAt(linha, 2)));

                        	CadastraEditaFamilias cei = new CadastraEditaFamilias(null, fam);
                        	cei.setVisible(true);

                    	} else {

                        	JOptionPane.showMessageDialog(null, "Nenhuma linha selecionada", "Selecione uma linha", JOptionPane.INFORMATION_MESSAGE);

                    	}

                	}

            	}

            );			
			
		}
		return buttonEditarFamilia;
	}

	private JButton getButtonRemoverFamilia() {
		if (buttonRemoverFamilia == null) {
			buttonRemoverFamilia = new JButton();
			buttonRemoverFamilia.setBounds(new Rectangle(675, 145, 50, 20));
			buttonRemoverFamilia.setText("X");
			buttonRemoverFamilia.setToolTipText("Remover família selecionada");
			buttonRemoverFamilia.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 12));
            buttonRemoverFamilia.addActionListener(new ActionListener() {

                	@Override public void actionPerformed(ActionEvent event) {

                		int linha = getTableFamilias().getSelectedRow();

                    	if(linha >= 0) {

                        	Familia fam = new Familia(Integer.parseInt((String) getTableFamilias().getValueAt(linha, 0)),
                                                     (String) getTableFamilias().getValueAt(linha, 1),
                                                     (Integer.parseInt((String) getTableFamilias().getValueAt(linha, 2))));
                        	Fachada.getInstancia().excluirFamilia(fam);

                            JOptionPane.showMessageDialog(null, "Item atualização concluida. Feche e abra novamente o cadastro", "Aviso Importante", JOptionPane.INFORMATION_MESSAGE);

                        } else {
                        	
                            JOptionPane.showMessageDialog(null, "Nenhuma linha foi selecionada.", "Selecione uma linha", JOptionPane.INFORMATION_MESSAGE);
                            
                        }
                
                	}

            	}

            );
			
		}
		
		return buttonRemoverFamilia;
	}

	private JButton getButtonInserirClassificacao() {
		if (buttonInserirClassificacao == null) {
			buttonInserirClassificacao = new JButton();
			buttonInserirClassificacao.setBounds(new Rectangle(565, 275, 50, 20));
			buttonInserirClassificacao.setToolTipText("Inserir nova classificação");
			buttonInserirClassificacao.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 16));
			buttonInserirClassificacao.setText("+");
            buttonInserirClassificacao.addActionListener(new ActionListener() {

                    @Override public void actionPerformed(ActionEvent event) {

                        CadastraEditaClassificacoes cei = new CadastraEditaClassificacoes(null);
                        cei.setVisible(true);

                        //JOptionPane.showMessageDialog(null, (String)getTableClassificacoes().getValueAt(0, 1), "Mensagem", JOptionPane.INFORMATION_MESSAGE);


                    }

                }

            );
		}
		return buttonInserirClassificacao;
	}

	private JButton getButtonEditarClassificacao() {
		if (buttonEditarClassificacao == null) {
			buttonEditarClassificacao = new JButton();
			buttonEditarClassificacao.setBounds(new Rectangle(620, 275, 50, 20));
			buttonEditarClassificacao.setToolTipText("Editar classificação selecionada");
			buttonEditarClassificacao.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 12));
			buttonEditarClassificacao.setText("...");
            buttonEditarClassificacao.addActionListener(new ActionListener() {

                    @Override public void actionPerformed(ActionEvent event) {

                        int linha = getTableClassificacoes().getSelectedRow();

                        if(linha >= 0) {

                            Classificacao cla = new Classificacao(Integer.parseInt((String) getTableClassificacoes().getValueAt(linha, 0)),
                                                                  ((String) getTableClassificacoes().getValueAt(linha, 1)));

                            CadastraEditaClassificacoes cei = new CadastraEditaClassificacoes(null, cla);
                            cei.setVisible(true);
                            
                        } else {

                            JOptionPane.showMessageDialog(null, "Nenhuma linha foi selecionada", "Selecione uma linha", JOptionPane.INFORMATION_MESSAGE);

                        }

                    }

                }

            );

		}
		return buttonEditarClassificacao;
	}

	private JButton getButtonRemoverClassificacao() {
		if (buttonRemoverClassificacao == null) {

			buttonRemoverClassificacao = new JButton();
			buttonRemoverClassificacao.setBounds(new Rectangle(675, 275, 50, 20));
			buttonRemoverClassificacao.setToolTipText("Remover classificação selecionada");
			buttonRemoverClassificacao.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 12));
			buttonRemoverClassificacao.setText("X");
            buttonRemoverClassificacao.addActionListener(new ActionListener() {

                    @Override public void actionPerformed(ActionEvent event) {

                        int linha = getTableClassificacoes().getSelectedRow();

                        if(linha >= 0) {

                            Classificacao cla = new Classificacao(Integer.parseInt((String) getTableClassificacoes().getValueAt(linha, 0)),
                                                                  (String) getTableClassificacoes().getValueAt(linha, 1));
                            Fachada.getInstancia().excluirClassificacao(cla);
                            
                            JOptionPane.showMessageDialog(null, "Item atualização concluida. Feche e abra novamente o cadastro", "Aviso Importante", JOptionPane.INFORMATION_MESSAGE);

                        } else {
                        	
                            JOptionPane.showMessageDialog(null, "Nenhuma linha foi selecionada.", "Selecione uma linha", JOptionPane.INFORMATION_MESSAGE);
                        	
                        }
                    
                    }

                }

            );

		}
		return buttonRemoverClassificacao;
	}

} 
